package rush.rushcampus.handler;

import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import rush.rushcampus.common.Result;

@Slf4j
@ControllerAdvice
public class GlobalExceptionHandler extends Throwable {

    @ResponseStatus(HttpStatus.BAD_REQUEST)  // 可以设置返回的HTTP状态码
    @ExceptionHandler(NullPointerException.class)  // 指定要捕获的异常类型
    public ResponseEntity<Result> handleNullPointerException(RuntimeException e) {
        // 在这里你可以处理异常，比如记录日志、转换异常信息等
        // 这个方法的返回值将作为HTTP的响应体返回给客户端
        return new ResponseEntity<>(Result.error("操作错误（找不到信息）"), HttpStatus.BAD_REQUEST);
    }

    // 你可以添加更多的@ExceptionHandler方法来处理其他类型的异常
}
